package com.brodong.animal_remake.common.registers;

import com.brodong.animal_remake.Main;
import com.brodong.animal_remake.common.entities.monster.models.*;
import com.brodong.animal_remake.common.entities.monster.realization.*;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.entity.EntityType;
import net.minecraft.world.entity.MobCategory;
import net.minecraftforge.registries.DeferredRegister;
import net.minecraftforge.registries.ForgeRegistries;
import net.minecraftforge.registries.RegistryObject;

public class EntityRegister {
    public static final DeferredRegister<EntityType<?>> ENTITY_TYPES = DeferredRegister.create(ForgeRegistries.ENTITIES, Main.MOD_ID);
    //GeckoTest
    public static final RegistryObject<EntityType<GeckoTestEntity>> GECKO_TEST = ENTITY_TYPES.register("gecko_test",
            () -> EntityType.Builder.of(GeckoTestEntity::new, MobCategory.MONSTER).sized(1f,1.8f).setTrackingRange(30)
                    .build(new ResourceLocation(Main.MOD_ID, "gecko_test").toString()));
    //近战基本
    public static final RegistryObject<EntityType<MeleeBasicEntity>> MELEE_BASIC = ENTITY_TYPES.register(MeleeBasicModel.name,
            () -> EntityType.Builder.of(MeleeBasicEntity::new, MobCategory.MONSTER).sized(1f,1.8f).setTrackingRange(30)
                    .build(new ResourceLocation(Main.MOD_ID, MeleeBasicModel.name).toString()));
    //飞行远程基本
    public static final RegistryObject<EntityType<FlyingRangeBasicEntity>> FLYING_RANGE_BASIC = ENTITY_TYPES.register(FlyingRangeBasicModel.name,
            () -> EntityType.Builder.of(FlyingRangeBasicEntity::new, MobCategory.MONSTER).sized(3f,5.4f).setTrackingRange(30)
                    .build(new ResourceLocation(Main.MOD_ID, FlyingRangeBasicModel.name).toString()));
    public static final RegistryObject<EntityType<RemoteBasicEntity>> REMOTE_BASIC = ENTITY_TYPES.register(RemoteBasicModel.name,
            () -> EntityType.Builder.of(RemoteBasicEntity::new, MobCategory.MONSTER).sized(1f,1.8f).setTrackingRange(30)
                    .build(new ResourceLocation(Main.MOD_ID, RemoteBasicModel.name).toString()));
    public static final RegistryObject<EntityType<WitchBasicEntity>> WITCH_BASIC = ENTITY_TYPES.register(WitchBasicModel.name,
            () -> EntityType.Builder.of(WitchBasicEntity::new, MobCategory.MONSTER).sized(1f,1.8f).setTrackingRange(30)
                    .build(new ResourceLocation(Main.MOD_ID, RemoteBasicModel.name).toString()));
    public static final RegistryObject<EntityType<FlyMeleeBasicEntity>> FLY_MELEE_BASIC = ENTITY_TYPES.register(FlyMeleeBasicModel.name,
            () -> EntityType.Builder.of(FlyMeleeBasicEntity::new, MobCategory.MONSTER).sized(1f,1.8f).setTrackingRange(30)
                    .build(new ResourceLocation(Main.MOD_ID, RemoteBasicModel.name).toString()));
    public static final RegistryObject<EntityType<SkillBasicEntity>> SKILL_BASIC = ENTITY_TYPES.register(SkillBasicModel.name,
            () -> EntityType.Builder.of(SkillBasicEntity::new, MobCategory.MONSTER).sized(1f,1.8f).setTrackingRange(30)
                    .build(new ResourceLocation(Main.MOD_ID, RemoteBasicModel.name).toString()));
}
